Megoldás
a. Az alábbi ábrán vázoljuk az utasítások
feldolgozásának menetét:

Könnyen észre lehet venni, hogy két adatütközés áll fenn:
-
A 3. utasítás az R2 tartalmát szeretné használni,
mielőtt ebbe bekerült volna a memóriából kiolvasott érték. Itt nem lehet
előreengedést alkalmazni, mert az R2 értéke nem az ALU-ból jön. A megoldás
az első két utasítás felcserélése.
A 4. utasítás az R3-at akarja használni, mielőtt
belekerült volna az összeadás eredménye. Ez az ütközés feloldható forwardinggal, úgy, hogy az ALU
összeadás utáni eredményét rögtön előreengedjék a következő utasításnak.
b. Mivel az ütközések feloldása késleltetés,
illetve NOP utasítás beiktatása nélkül vált
lehetségessé, a feldolgozás
ideje (4+1+1+1) ´ 5 ns = 35 ns lesz.

|